package com.rem.concurrency.multithreading.state;

/**
 * 线程停止
 * 1.建议线程正常停止 -->利用次数，不建议死循环
 * 2.建议使用标志位 --> 设置一个标志位
 * 3.不要使用stop或者destrop等过时或者JDK不建议使用的方法
 *
 * @author Rem
 * @date 2020-10-28
 */

public class ThreadStop implements Runnable {

    boolean flag = true;

    @Override
    public void run() {
        while (flag) {
            System.err.println(Thread.currentThread().getName() + "正在运行····");
        }
    }

    public void stop() {
        this.flag = false;
    }

    public static void main(String[] args) {
        ThreadStop threadStop = new ThreadStop();
        new Thread(threadStop, "R").start();

        for (int i = 0; i < 1000; i++) {
            System.err.println("main" + i);
            if (900 == i) {
                threadStop.stop();
                System.err.println("threadStop 该线程停止了。。。");
                System.exit(1);
            }
        }

    }
}
